package com.zmj.dto.rsp;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * Retrofit2测试实体类
 */
@Data
public class MailChimpCampaignRsp {

    private List<Report> reports;

    private int total_items;

    private List<Links> _links;

}


@Data
class Bounces {

    private int hard_bounces;

    private int soft_bounces;

    private int syntax_errors;
}

@Data
class Opens {

    private int opens_total;

    private int unique_opens;

    private BigDecimal open_rate;

    private String last_open;
}

@Data
class Campaign {

    private String id;

    private int web_id;

    private String parent_campaign_id;

    private String type;

    private String create_time;

    private String archive_url;

    private String long_archive_url;

    private String status;

    private int emails_sent;

    private String send_time;

    private String content_type;

    private boolean needs_block_refresh;

    private boolean resendable;

    private Recipients recipients;

    private Settings settings;

    private Tracking tracking;

    private DeliveryStatus delivery_status;

    private List<Links> _links;
}

@Data
class Clicks {
    private int clicks_total;

    private int unique_clicks;

    private int unique_subscriber_clicks;

    private BigDecimal click_rate;

    private String last_click;
}

@Data
class DeliveryStatus {

    private boolean enabled;

    private boolean can_cancel;

    private String status;

    private int emails_sent;

    private int emails_canceled;
}


@Data
class Ecommerce {
    private int total_orders;

    private int total_spent;

    private int total_revenue;

    private String currency_code;
}

@Data
class FacebookLikes {

    private int recipient_likes;

    private int unique_likes;

    private int facebook_likes;
}

@Data
class Forwards {

    private int forwards_count;

    private int forwards_opens;
}

@Data
class IndustryStats {
    private String type;

    private double open_rate;

    private double click_rate;

    private double bounce_rate;

    private double unopen_rate;

    private double unsub_rate;

    private double abuse_rate;
}

@Data
class Links {
    private String rel;

    private String href;

    private String method;

    private String targetSchema;

    private String schema;
}

@Data
class ListStats {

    private int sub_rate;

    private int unsub_rate;

    private double open_rate;

    private double click_rate;
}

@Data
class Recipients {
    private String list_id;

    private boolean list_is_active;

    private String list_name;

    private String segment_text;

    private int recipient_count;
}


@Data
class ReportAndAutomation {

    private String id;

    private String campaign_title;

    private String type;

    private String list_id;

    private boolean list_is_active;

    private String list_name;

    private String subject_line;

    private String preview_text;

    private int emails_sent;

    private int abuse_reports;

    private int unsubscribed;

    private String send_time;

    private Bounces bounces;

    private Forwards forwards;

    private Opens opens;

    private Clicks clicks;

    private FacebookLikes facebook_likes;

    private IndustryStats industry_stats;

    private ListStats list_stats;

    private List<Timeseries> timeseries;

    private Ecommerce ecommerce;

    private DeliveryStatus delivery_status;

    private List<Links> _links;
}

@Data
class Settings {
    private String subject_line;

    private String preview_text;

    private String title;

    private String from_name;

    private String reply_to;

    private boolean use_conversation;

    private String to_name;

    private String folder_id;

    private boolean authenticate;

    private boolean auto_footer;

    private boolean inline_css;

    private boolean auto_tweet;

    private boolean fb_comments;

    private boolean timewarp;

    private int template_id;

    private boolean drag_and_drop;
}


@Data
class Timeseries {

    private String timestamp;

    private int emails_sent;

    private int unique_opens;

    private int recipients_clicks;


}


@Data
class Tracking {
    private boolean opens;

    private boolean html_clicks;

    private boolean text_clicks;

    private boolean goal_tracking;

    private boolean ecomm360;

    private String google_analytics;

    private String clicktale;
}


@Data
class Report extends ReportAndAutomation {

}